{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Modeling and Simulation in Python\n",
    "\n",
    "Case Study: Queueing theory\n",
    "\n",
    "Copyright 2017 Allen Downey\n",
    "\n",
    "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Configure Jupyter so figures appear in the notebook\n",
    "%matplotlib inline\n",
    "\n",
    "# Configure Jupyter to display the assigned value after an assignment\n",
    "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n",
    "\n",
    "# import functions from the modsim.py module\n",
    "from modsim import *\n",
    "\n",
    "# set the random number generator\n",
    "np.random.seed(7)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## One queue or two?\n",
    "\n",
    "This notebook presents a solution to an exercise from *Modeling and Simulation in Python*.  It uses features from the first four chapters to answer a question related to queueing theory, which is the study of systems that involve waiting in lines, also known as \"queues\".\n",
    "\n",
    "Suppose you are designing the checkout area for a new store.  There is room for two checkout counters and a waiting area for customers.  You can make two lines, one for each counter, or one line that serves both counters.\n",
    "\n",
    "In theory, you might expect a single line to be better, but it has some practical drawbacks: in order to maintain a single line, you would have to install rope barriers, and customers might be put off by what seems to be a longer line, even if it moves faster.\n",
    "\n",
    "So you'd like to check whether the single line is really better and by how much.  Simulation can help answer this question.\n",
    "\n",
    "As we did in the bikeshare model, we'll assume that a customer is equally likely to arrive during any timestep.  I'll denote this probability using the Greek letter lambda, $\\lambda$, or the variable name `lam`.  The value of $\\lambda$ probably varies from day to day, so we'll have to consider a range of possibilities.\n",
    "\n",
    "Based on data from other stores, you know that it takes 5 minutes for a customer to check out, on average.  But checkout times are highly variable: most customers take less than 5 minutes, but some take substantially more.  A simple way to model this variability is to assume that when a customer is checking out, they have the same probability of finishing up during each time step.  I'll denote this probability using the Greek letter mu, $\\mu$, or the variable name `mu`.\n",
    "\n",
    "If we choose $\\mu=1/5$, the average number of time steps for each checkout will be 5 minutes, which is consistent with the data."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### One server, one queue\n",
    "\n",
    "Write a function called `make_system` that takes `lam` and `mu` as parameters and returns a `System` object with variables `lam`, `mu`, and `duration`.  Set `duration`, which is the number of time steps to simulate, to 10 hours, expressed in minutes. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def make_system(lam, mu):\n",
    "    \"\"\"Make a System object.\n",
    "    \n",
    "    lam: arrival rate, per minute\n",
    "    mu: service completion rate, per minute\n",
    "    \n",
    "    returns: System object\n",
    "    \"\"\"\n",
    "    # duration is 10 hours, expressed in minutes\n",
    "    return System(lam=lam, mu=mu, duration=10*60)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Test this function by creating a `System` object with `lam=1/8` and `mu=1/5`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>lam</th>\n",
       "      <td>0.125</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mu</th>\n",
       "      <td>0.200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>duration</th>\n",
       "      <td>600.000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "lam           0.125\n",
       "mu            0.200\n",
       "duration    600.000\n",
       "dtype: float64"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "interarrival_time = 8\n",
    "service_time = 5\n",
    "\n",
    "lam = 1 / interarrival_time\n",
    "mu = 1 / service_time\n",
    "\n",
    "system = make_system(lam, mu)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Write an update function that takes as parameters `x`, which is the total number of customer in the store, including the one checking out; `t`, which is the number of minutes that have elapsed in the simulation, and `system`, which is a `System` object.\n",
    "\n",
    "If there's a customer checking out, it should use `flip` to decide whether they are done.  And it should use `flip` to decide if a new customer has arrived.\n",
    "\n",
    "It should return the total number of customers at the end of the time step.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def update_func1(x, t, system):\n",
    "    \"\"\"Simulate one time step.\n",
    "    \n",
    "    x: number of people in the shop\n",
    "    t: time step\n",
    "    system: System object\n",
    "    \"\"\"\n",
    "    # if there's a customer in service, check if they're done\n",
    "    if x > 0:\n",
    "        if flip(system.mu):\n",
    "            x -= 1\n",
    "            \n",
    "    # check for an arrival\n",
    "    if flip(system.lam):\n",
    "        x += 1\n",
    "        \n",
    "    return x"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Test your function by calling it with `x=1`, `t=0`, and the `System` object you created.  If you run it a few times, you should see different results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "update_func1(1, 0, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can run the simulation.  Here's a version of `run_simulation` that creates a `TimeSeries` with the total number of customers in the store, including the one checking out."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def run_simulation(system, update_func):\n",
    "    \"\"\"Simulate a queueing system.\n",
    "    \n",
    "    system: System object\n",
    "    update_func: function object\n",
    "    \"\"\"\n",
    "    x = 0\n",
    "    results = TimeSeries()\n",
    "    results[0] = x\n",
    "    \n",
    "    for t in linrange(0, system.duration):\n",
    "        x = update_func(x, t, system)\n",
    "        results[t+1] = x\n",
    "\n",
    "    return results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Call `run_simulation` with your update function and plot the results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "results = run_simulation(system, update_func1)\n",
    "plot(results)\n",
    "decorate(xlabel='Time (min)', ylabel='Customers')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After the simulation, we can compute `L`, which is the average number of customers in the system, and `W`, which is the average time customers spend in the store.  `L` and `W` are related by Little's Law:\n",
    "\n",
    "$L = \\lambda W$\n",
    "\n",
    "Where $\\lambda$ is the arrival rate.  Here's a function that computes them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_metrics(results, system):\n",
    "    \"\"\"Compute average number of customers and wait time.\n",
    "    \n",
    "    results: TimeSeries of queue lengths\n",
    "    system: System object\n",
    "    \n",
    "    returns: L, W\n",
    "    \"\"\"\n",
    "    L = results.mean()\n",
    "    W = L / system.lam\n",
    "    return L, W"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Call `compute_metrics` with the results from your simulation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.8552412645590682, 6.841930116472546)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "compute_metrics(results, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Parameter sweep\n",
    "\n",
    "Since we don't know the actual value of $\\lambda$, we can sweep through a range of possibilities, from 10% to 80% of the completion rate, $\\mu$.  (If customers arrive faster than the completion rate, the queue grows without bound.  In that case the metrics `L` and `W` just depend on how long the store is open.)\n",
    "\n",
    "Create an array of values for `lam`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.02  , 0.0214, 0.0228, 0.0242, 0.0256, 0.027 , 0.0284, 0.0298,\n",
       "       0.0312, 0.0326, 0.034 , 0.0354, 0.0368, 0.0382, 0.0396, 0.041 ,\n",
       "       0.0424, 0.0438, 0.0452, 0.0466, 0.048 , 0.0494, 0.0508, 0.0522,\n",
       "       0.0536, 0.055 , 0.0564, 0.0578, 0.0592, 0.0606, 0.062 , 0.0634,\n",
       "       0.0648, 0.0662, 0.0676, 0.069 , 0.0704, 0.0718, 0.0732, 0.0746,\n",
       "       0.076 , 0.0774, 0.0788, 0.0802, 0.0816, 0.083 , 0.0844, 0.0858,\n",
       "       0.0872, 0.0886, 0.09  , 0.0914, 0.0928, 0.0942, 0.0956, 0.097 ,\n",
       "       0.0984, 0.0998, 0.1012, 0.1026, 0.104 , 0.1054, 0.1068, 0.1082,\n",
       "       0.1096, 0.111 , 0.1124, 0.1138, 0.1152, 0.1166, 0.118 , 0.1194,\n",
       "       0.1208, 0.1222, 0.1236, 0.125 , 0.1264, 0.1278, 0.1292, 0.1306,\n",
       "       0.132 , 0.1334, 0.1348, 0.1362, 0.1376, 0.139 , 0.1404, 0.1418,\n",
       "       0.1432, 0.1446, 0.146 , 0.1474, 0.1488, 0.1502, 0.1516, 0.153 ,\n",
       "       0.1544, 0.1558, 0.1572, 0.1586, 0.16  ])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "num_vals = 101\n",
    "lam_array = linspace(0.1*mu, 0.8*mu, num_vals)\n",
    "lam_array"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Write a function that takes an array of values for `lam`, a single value for `mu`, and an update function.\n",
    "\n",
    "For each value of `lam`, it should run a simulation, compute `L` and `W`, and store the value of `W` in a `SweepSeries`.\n",
    "\n",
    "It should return the `SweepSeries`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def sweep_lam(lam_array, mu, update_func):\n",
    "    \"\"\"Run simulations with a range of values for `lam`\n",
    "    \n",
    "    lam_array: array of values for `lam`\n",
    "    mu: probability of finishing a checkout\n",
    "    update_func: passed along to run_simulation\n",
    "    \n",
    "    returns: SweepSeries of average wait time vs lam\n",
    "    \"\"\"\n",
    "    sweep = SweepSeries()\n",
    "    \n",
    "    for lam in lam_array:\n",
    "        system = make_system(lam, mu)\n",
    "        results = run_simulation(system, update_func)\n",
    "        L, W = compute_metrics(results, system)\n",
    "        sweep[lam] = W\n",
    "        \n",
    "    return sweep"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Call your function to generate a `SweepSeries`, and plot it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0.0200</th>\n",
       "      <td>4.658902</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0214</th>\n",
       "      <td>5.209386</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0228</th>\n",
       "      <td>3.065067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0242</th>\n",
       "      <td>5.706742</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0256</th>\n",
       "      <td>8.059484</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0270</th>\n",
       "      <td>9.613607</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0284</th>\n",
       "      <td>3.280917</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0298</th>\n",
       "      <td>4.075981</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0312</th>\n",
       "      <td>6.932890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0326</th>\n",
       "      <td>5.563325</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0340</th>\n",
       "      <td>6.704512</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0354</th>\n",
       "      <td>10.340581</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0368</th>\n",
       "      <td>7.279534</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0382</th>\n",
       "      <td>4.225070</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0396</th>\n",
       "      <td>4.453856</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0410</th>\n",
       "      <td>3.449535</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0424</th>\n",
       "      <td>5.376260</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0438</th>\n",
       "      <td>7.483722</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0452</th>\n",
       "      <td>4.491040</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0466</th>\n",
       "      <td>6.641292</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0480</th>\n",
       "      <td>3.986412</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0494</th>\n",
       "      <td>5.119672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0508</th>\n",
       "      <td>6.386993</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0522</th>\n",
       "      <td>8.861349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0536</th>\n",
       "      <td>6.394815</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0550</th>\n",
       "      <td>6.534564</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0564</th>\n",
       "      <td>10.060065</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0578</th>\n",
       "      <td>4.001405</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0592</th>\n",
       "      <td>7.110896</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.0606</th>\n",
       "      <td>3.459581</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1194</th>\n",
       "      <td>14.687971</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1208</th>\n",
       "      <td>6.942072</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1222</th>\n",
       "      <td>12.472393</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1236</th>\n",
       "      <td>9.827203</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1250</th>\n",
       "      <td>27.873544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1264</th>\n",
       "      <td>10.978538</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1278</th>\n",
       "      <td>7.121673</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1292</th>\n",
       "      <td>12.543593</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1306</th>\n",
       "      <td>17.976675</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1320</th>\n",
       "      <td>8.042152</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1334</th>\n",
       "      <td>13.545640</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1348</th>\n",
       "      <td>14.701018</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1362</th>\n",
       "      <td>36.649637</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1376</th>\n",
       "      <td>28.150756</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1390</th>\n",
       "      <td>13.957553</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1404</th>\n",
       "      <td>5.119672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1418</th>\n",
       "      <td>17.166969</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1432</th>\n",
       "      <td>9.527882</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1446</th>\n",
       "      <td>13.750711</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1460</th>\n",
       "      <td>7.783831</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1474</th>\n",
       "      <td>10.249765</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1488</th>\n",
       "      <td>6.988800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1502</th>\n",
       "      <td>10.058690</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1516</th>\n",
       "      <td>13.071881</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1530</th>\n",
       "      <td>12.800017</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1544</th>\n",
       "      <td>10.776512</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1558</th>\n",
       "      <td>23.281694</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1572</th>\n",
       "      <td>10.351704</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1586</th>\n",
       "      <td>9.242687</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0.1600</th>\n",
       "      <td>23.356905</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>101 rows × 1 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "0.0200     4.658902\n",
       "0.0214     5.209386\n",
       "0.0228     3.065067\n",
       "0.0242     5.706742\n",
       "0.0256     8.059484\n",
       "0.0270     9.613607\n",
       "0.0284     3.280917\n",
       "0.0298     4.075981\n",
       "0.0312     6.932890\n",
       "0.0326     5.563325\n",
       "0.0340     6.704512\n",
       "0.0354    10.340581\n",
       "0.0368     7.279534\n",
       "0.0382     4.225070\n",
       "0.0396     4.453856\n",
       "0.0410     3.449535\n",
       "0.0424     5.376260\n",
       "0.0438     7.483722\n",
       "0.0452     4.491040\n",
       "0.0466     6.641292\n",
       "0.0480     3.986412\n",
       "0.0494     5.119672\n",
       "0.0508     6.386993\n",
       "0.0522     8.861349\n",
       "0.0536     6.394815\n",
       "0.0550     6.534564\n",
       "0.0564    10.060065\n",
       "0.0578     4.001405\n",
       "0.0592     7.110896\n",
       "0.0606     3.459581\n",
       "            ...    \n",
       "0.1194    14.687971\n",
       "0.1208     6.942072\n",
       "0.1222    12.472393\n",
       "0.1236     9.827203\n",
       "0.1250    27.873544\n",
       "0.1264    10.978538\n",
       "0.1278     7.121673\n",
       "0.1292    12.543593\n",
       "0.1306    17.976675\n",
       "0.1320     8.042152\n",
       "0.1334    13.545640\n",
       "0.1348    14.701018\n",
       "0.1362    36.649637\n",
       "0.1376    28.150756\n",
       "0.1390    13.957553\n",
       "0.1404     5.119672\n",
       "0.1418    17.166969\n",
       "0.1432     9.527882\n",
       "0.1446    13.750711\n",
       "0.1460     7.783831\n",
       "0.1474    10.249765\n",
       "0.1488     6.988800\n",
       "0.1502    10.058690\n",
       "0.1516    13.071881\n",
       "0.1530    12.800017\n",
       "0.1544    10.776512\n",
       "0.1558    23.281694\n",
       "0.1572    10.351704\n",
       "0.1586     9.242687\n",
       "0.1600    23.356905\n",
       "Length: 101, dtype: float64"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "sweep = sweep_lam(lam_array, mu, update_func1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "plot(sweep, 'bo')\n",
    "\n",
    "decorate(xlabel='Arrival late, lambda (per min)',\n",
    "         ylabel='Average time in system',\n",
    "         title='Single server, single queue')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If we imagine that this range of values represents arrival rates on different days, we can use the average value of `W`, for a range of values of `lam`, to compare different queueing strategies."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# W_avg = sweep.mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Analysis\n",
    "\n",
    "The model I chose for this system is a common model in queueing theory, in part because many of its properties can be derived analytically.\n",
    "\n",
    "In particular, we can derive the average time in the store as a function of $\\mu$ and $\\lambda$:\n",
    "\n",
    "$W = 1 / (\\mu - \\lambda)$\n",
    "\n",
    "The following function plots the theoretical value of $W$ as a function of $\\lambda$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_W(lam_array, mu):\n",
    "    \"\"\"Plot the theoretical mean wait time.\n",
    "    \n",
    "    lam_array: array of values for `lam`\n",
    "    mu: probability of finishing a checkout\n",
    "    \"\"\"\n",
    "    W = 1 / (mu - lam_array)\n",
    "    plot(lam_array, W, 'g-')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Use this function to plot the theoretical results, then plot your simulation results again on the same graph.  How do they compare?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "plot_W(lam_array, mu)\n",
    "plot(sweep, 'bo')\n",
    "\n",
    "decorate(xlabel='Arrival late, lambda (per min)',\n",
    "         ylabel='Average time in system',\n",
    "         title='Single server, single queue')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Multiple servers\n",
    "\n",
    "Now let's try the other two queueing strategies:\n",
    "\n",
    "1.  One queue with two checkout counters.\n",
    "2.  Two queues, one for each counter.\n",
    "\n",
    "The following figure shows the three scenarios:\n",
    "\n",
    "![](diagrams/queue.png)\n",
    "\n",
    "Write an update function for one queue with two servers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def update_func2(x, t, system):\n",
    "    \"\"\"Simulate a single queue with two servers.\n",
    "    \n",
    "    system: System object\n",
    "    \"\"\"\n",
    "    # if both servers are busy, check whether the\n",
    "    # second is complete\n",
    "    if x > 1 and flip(system.mu):\n",
    "        x -= 1\n",
    "            \n",
    "    # check whether the first is complete\n",
    "    if x > 0 and flip(system.mu):\n",
    "        x -= 1\n",
    "    \n",
    "    # check for an arrival\n",
    "    if flip(system.lam):\n",
    "        x += 1\n",
    "        \n",
    "    return x"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Use this update function to simulate the system, plot the results, and print the metrics."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.8552412645590682, 6.841930116472546)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "system = make_system(lam, mu)\n",
    "run_simulation(system, update_func2)\n",
    "plot(results)\n",
    "decorate(xlabel='Time (min)', ylabel='Customers')\n",
    "compute_metrics(results, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since we have two checkout counters now, we can consider values for $\\lambda$ that exceed $\\mu$.\n",
    "\n",
    "Create a new array of values for `lam` from 10% to 160% of `mu`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.02 , 0.023, 0.026, 0.029, 0.032, 0.035, 0.038, 0.041, 0.044,\n",
       "       0.047, 0.05 , 0.053, 0.056, 0.059, 0.062, 0.065, 0.068, 0.071,\n",
       "       0.074, 0.077, 0.08 , 0.083, 0.086, 0.089, 0.092, 0.095, 0.098,\n",
       "       0.101, 0.104, 0.107, 0.11 , 0.113, 0.116, 0.119, 0.122, 0.125,\n",
       "       0.128, 0.131, 0.134, 0.137, 0.14 , 0.143, 0.146, 0.149, 0.152,\n",
       "       0.155, 0.158, 0.161, 0.164, 0.167, 0.17 , 0.173, 0.176, 0.179,\n",
       "       0.182, 0.185, 0.188, 0.191, 0.194, 0.197, 0.2  , 0.203, 0.206,\n",
       "       0.209, 0.212, 0.215, 0.218, 0.221, 0.224, 0.227, 0.23 , 0.233,\n",
       "       0.236, 0.239, 0.242, 0.245, 0.248, 0.251, 0.254, 0.257, 0.26 ,\n",
       "       0.263, 0.266, 0.269, 0.272, 0.275, 0.278, 0.281, 0.284, 0.287,\n",
       "       0.29 , 0.293, 0.296, 0.299, 0.302, 0.305, 0.308, 0.311, 0.314,\n",
       "       0.317, 0.32 ])"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "lam_array = linspace(0.1*mu, 1.6*mu, num_vals)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Use your sweep function to simulate the two server, one queue scenario with a range of values for `lam`.\n",
    "\n",
    "Plot the results and print the average value of `W` across all values of `lam`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average of averages =  6.34676127667513 minutes\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "sweep = sweep_lam(lam_array, mu, update_func2)\n",
    "W_avg = sweep.mean()\n",
    "print('Average of averages = ', W_avg, 'minutes')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3deZwcdZ3/8dckk8kkkwMCJCAJRBA+CCouBET9acCIKKByySqgHHIIiHjArhcICwpyCcpyCAqyXO6KF8jlBjlWcCG4BuT4hDOEI4AJ5Jhkcs7vj291Umm6e6q7q7qre97Px2MememurvpWV6U+9f1+P/X9dvT39yMiIpI3Q5pdABERkVIUoEREJJcUoEREJJcUoEREJJcUoEREJJcUoEREJJcUoKRmZva8mfWb2f4l3htnZivM7B8J1zU5Wte7or83MrODYu/fbWbnJVzXaWY2I+l+DBbF33EK6+s3s73TWJdIKZ3NLoC0vBXAPsBNRa9/Chhax3rPAUYD10d/7xdtS2o3B9gESHTTINJsClBSr7uBvcys091Xxl7fD3gAsBrX2xH/w93n17geibj7KmBus8shkpQClNTrTuADwIeBuwDMbBTwEeB04F+j1yYDzwHvdve/R68dBpzn7hvGV2hmpwGHRr/3u3uHmd0NzHD3k6L3d4jWdwSwIFrPhaUKaGZbAz+Oyvg68EvgFHdfVmb5U4CjgY2AJ4Bvu/tt0XsbR+v6BLAY+APwDXdfENvHU4CvAQ8C2wLnu/uPY+v/LfCaux9d5fr+1933LFXm2Lo7gR8BnwHGAg8DX3f3B4uPgZk9Hy27L7Az8DTwHXe/OVrX+sBlUdkWROW4EniHuz9fYtsnAScAGwB/A05y979UKOdZwGGEm5FzozJf7O5Xx4937DP9wCfd/ZaBtlfv5yUf1Acl9eoDbgM+HXttL+AhQjCoxXnAfwK3EJqkStkD2AzYBfgWcJaZHVq8kJl1A3cAzwL/BHwe+DhwUamVmtm+wFeBQ4BtCAHjv8xsTLTIrwn/b94PfBLYErixaDV7R++fFL13YGz9Y6PtX1fD+k4u813EnRCt/5PAdsAs4Fdm1lFm+X8jBKEpwFPAVWbWFb13A7AFsBvh+/gOZZptzewY4ETgOML3fCtwl5m9vcx2TwO+EP18lNAknLhvrIbtpfp5aQwFKEnDr1k3QO3HW/ukEnP3xcBSYJm7l2uSWgp8wd0fc/f/AC4nXGyKfY7Qd3W8B/cCXwKOigWduMnAMmB2VEv4t2h/VpjZbsB7gIPd/e/uPgM4GPh4UeLBhe4+y90fIwSiD5jZptF7+xAC9701rm8gk4ElwPPu/izwdUJttNz/9Rvc/UZ3f5xQ490AmBzVOvcAvujuD7v7PYTgV863gW+6+x/c/Sl3/wHwP8DxxQtGwfJo4Ex3v83d/xbtdzUtOom3l9HnpQHUxCdp+ANwtZm9F3iScAf/dWD3DLf5N3dfFPv7QeCoEsttR6gFLDJb0x3WQbhgb0VoAou7lnBBf9bMHgZ+D1zl7kvNbDtgJDAvtq4Ci63rmcKL7v6ImT1GaL66EPgsISj017K+BC4m3Cy8bGb3R+W/2t1XldgGhBpWwcLo32HAOwmB+tHY+w+UWkHUpLsZcIWZXR57a3i0jmIbRT9rvnt3f97M5lTYr3q2l+rnpXEUoKRu7r7QzKYTagcPA4+5+0tFF8RSw+bXc/6tLPp7CLCqzDYeAA4v8d5LxS+4++tmtiMwjdBUeRjwNTP7cLSu2ZQOvK8Sah8Qandx1wMHmtk1hOasb8XKVsv6ynL3pyx88Z8A9gS+AZxoZjuX+cjyEq91EGqd5ZoFixWa/Q4F/q/ovVJlX1JmPfHgsM75EvVZVbO9ej8vOaAmPknLrwkBqlzzXuFCODb22hYV1jfQPDDvivWVQOjkn1liuScINaUX3f1pd38aGAecDXQVL2xm+wHHuPud7n4ioSaziHCxfwJ4G7Aotq7lwPnA+AplvT4q35HArKhJq1C2WtZXlpkdBezj7r9196OBrYEJhASRajxG+H7eHXttp1ILuvsCQnbgpoX9iPbly4RmwuLlFxMC8/tj5d6A0DxZsJwy50rC7dX7eckB1aAkLb8jdLZvQei3KfYq4Tmc75rZlwl9L6VqNQWLCUFoc3efXeL9CcAlZnYuIVHiKEJHfrFrgVOBX5jZGYRnq64EXoguVMWGAuea2avAjGjdG0e/3024cN8YZYCtBH5CCHjPA5NK7Yi7zzazvxCy4M6OvfXHWtYXZf4tji70xdYDzjCz+YSkh72iffpbiWXLcvenzexmQjPY8YRg9ZPo7VI3D+cAp5rZK4QEmYMIF/ypZTZxFiGx5VnAgR8SmtgKHiLU/K4hZBBewLo1rIG2V+/nJQdUg5JUuPvrwJ+Bp9z9uRLvryYEpM2Axwlp09+usMqrCYHhieiCXOwRwgXnr4QAdJy7v6Xm5u69wMeA9Qn9VDez9oJUaj/+C/geIe15FnAm8GV3vyvah08B84E/AfcA84A9o2eMKrkOGMXaB4+pY32vEDIES7kAuAa4inDhPwbY391nlVm+kiMIzaD3ErIqfxG9XqpZ8CJC9uU5hON7IHCAu/+51Ird/fJo+UuB+4G/EPa94HzCIwx3ELI5rwVerGJ79X5ecqBDM+pKq4meg9rb3ac0uyzNYGafAbZw9x9muI2RhMB+W+F5MTPbiZDp1lP0UHZa2/wH4Vmkq9Net7QmNfGJtJAoRftEQu0mS33AFcA1ZvbvhKbD84GbsghOIqWoiU+khbh7P/CRGpvsqtlOoflxF0Kq+R2EpI5jstyuSJya+EREJJdavonPzIYT0l9fofRzMCIikl9DCUOaPVQ8PmbLByhCcLqv2YUQEZG6fIiQhLNGOwSoVwCuu+46Nt64VDayiIjk1dy5czn44IMhupbHtUOAWgWw8cYbM3HixGaXRUREavOWLhpl8YmISC4pQImISC4pQImISC4pQImISC61Q5KEiMiAZs2ez/QZc3h1/hImjBvJtCmT2Hrzcc0ullSgACUibW/W7Plce4fT093JBmO7Wdi7nGvvcA7Zw2oOUgp42VMTn4i0vekz5tDT3UnPiGF0dHTQM2IYPd2dTJ+RaJb5tygEvIW9y9cJeLNmz0+55IObApSItL1X5y9hZPe6DUYjuzt5dX652ecrSzvgSWkKUCLS9iaMG8mSvnVnCVnSt5IJ40bWtL60A56UpgAlIm1v2pRJ9PatpHfpCvr7++lduoLevpVMmzKppvWlHfCkNAUoEWl7W28+jkP2MMb0dDFvQR9jerrqSpBIO+BJacriE5FBYevNx6WWZVcIePEsvn2nbqksvpQpQImI1CDNgCelqYlPRERySQFKRERySQFKRERyqSkBysx2NrPXyrz3EzO7u8FFEhGRnGlokoSZdQBfBM4r8/4ngGMpmpdeREQGn0Zn8Z0O7AWcCXw3/oaZbQT8BLgUeHeDyyUikhoNJJuORjfxXebuOwIzSrz3c+Bs4JnGFklEJD0aSDY9DQ1Q7v5yqdfN7Dhgtbtf2cjyiIikTQPJpqfpD+qa2TuBk4Gdm10WEZF6vTp/CRuM7V7nNQ0kW5umByhgP2A88JSZAQwHhpnZm+6+XlNLJiJSpQnjRrKwdzk9I4ateU0Dydam6c9Bufv33b3H3deLAtK3gP9RcBKRVqSBZNPT9AAlItJO0h45fTBrShOfu98NlKwhufuFwIUNLZCISIo0kGw6VIMSEZFcUoASEZFcUoASEZFcUoASEZFcSpQkYWbvJSQubEd4Tmkd7j4m5XKJiMgglzSL7xfAm8BJQF92xREREQmSBqh3AFPc/YksCyMiIlKQtA/qPuA9WRZEREQkLmkN6mjgL2a2F/AssDr+prv/W9oFExGRwS1pgDqNMKDrjsA7i97rBxSgREQkVUkD1IHAPu5+S5aFERERKUjaBzWf0LQnIiLSEElrUCcDPzGzkwlTsq+Iv+numolLRERSlTRAXUwYffyhMu8PTac4IiKShVmz5zN9xhxenb+ECeNGMm3KpNyPuJ40QB2QaSlERCQzs2bP59o7nJ7uTjYY283C3uVce4fnfp6qRAHK3e8p/G5m6wML3H11hY+IiEhOTJ8xh57uzjXT0Bf+nT5jTusHKAAz+xdCX9T6wNZm9j1gEfA1d19R8cMiItI0r85fwgZju9d5bWR3J6/Oz3f6QKIsvig54ljgK8Cy6OVfAfsCZ2VTNBERScOEcSNZ0rdyndeW9K1kwriRTSpRMknTzI8EvuTuNxCNIuHuNwOHAp/LqGwiIpKCaVMm0du3kt6lK+jv76d36Qp6+1YybcqkZhetoqQBajPgqRKvv0Bo8hMRkZzaevNxHLKHMaani3kL+hjT05X7BAlI3gf1MPBZ4AfR3/3Rv8cDf027UCIikq6tNx+X+4BULGmA+gZwu5lNJUxY+H0z2wbYCtgjq8KJiAwWrficUtYSNfG5+/8CWwMPAL8DRgC3A9u4+/3VbtTMdjaz12J/jzezG8zsNTN73cyuidLZRUTaXuE5pYW9y9d5TmnW7PnNLlpTJZ3y/VTgPHc/rej1MWZ2gbt/PeF6OoAvAucVvXUlsAB4OzAM+A/g34GDkqxXRKSVtepzSlkrG6DMbFNgbPTn94C7zKw4nL8X+BKQKEABpwN7AWcC3422M4SQGXi6u/dGr11BGF5JRKTttepzSlmrVIPaCfg1axMi7i2z3M+q2N5l7n6qme1aeCEakWKfouX2Af6vivWKiLSsCeNGsrB3+ZqaE7TGc0pZK9sH5e6/BSYDWwIdwM6EJrjCz2RgQ3c/KunG3P3lgZYxs5MIAepfk65XRKSVtepzSlmr2Afl7i9Ev64TyMysC3gP8GZaBTGzYcBPgE8CH3H3J9Nat4hInhWeU4pn8e07dctB3f8EyZMktgR+TqjVPALcTwhQC8zsE+7+l3oKYWajgZuB0cDO7v5SPesTEWk1rficUtaSjiRxMWFg2OeBzwMTAQMuBS5IoRw3RmX5kIKTiIhA8gD1IcKo5XMJ/UN/cPengCsImXw1M7P3AHsS+rheM7PF0c+L9axXRERaW9KRJPqAYWbWA0wFjohe35jw/FJV3P1uwgy9uPsjhCQMERGRNZIGqDsItaVFwBLgZjObBlwE/D6jsomIyADaeYikpE18xwAzCDWpvaIHancC7ga+mk3RRESkknYfIilpDWpHdz8x/oK7n51BeUREJKF2HyIpaYC62czeBK4HrnP3RzMsk4iIJNDuQyQlDVDjCdl7nwMeMrOngOuA62MP84qINFw798EMpN2HSEo63Uafu9/o7p8GNiEkR7wfeNzM7jWzI81sVJYFFREp1u59MANp9yGSkiZJxG0CTCJMA98JvAEcDcw2s+JBX0VEMhPvg+no6KBnxDB6ujuZPmNOs4vWEK06lXtSSYc62oIw5ftnge0IExdeDvzS3d+IljkD+Cnw22yKKiKyrnbvg0minYdIStoH9TQwi9Dv9Gl3f67EMn8GdkirYCIiA2n3PpjBLmmAep+7P1RpAXe/nTANvIhIQ0ybMolr73Ag1JyW9K2kt28l+07dssklkzQk7YOaYWaHm9kkADP7ppn93cx+Ho1ELiLScO3eBzPYJa1BnQ0cCXzMzN4BnAGcA+wO/Ch6T0Sk4dq5D2awS1qDOgT4jLs/THgW6l53/w7wJd46XbuIiEjdkgao9YGnot/3BG6Nfl8AdKVdKBERkaRNfI8CXzCzucDbgN9FU7R/A/hbVoUTEZHBK2mAOgn4DTAO+IG7P21mlwAHAHtlVTgRERm8kg51dB9hPL4N3P270ctnAZsNlH4uIiJSi6Q1KNx9NWFYo8Lfg2MsERERaYpaxuITERHJXOIalIiIDG6NntpENSgRERlQM6Y2SVyDMrPxwHuAYUBH/D13v7Xkh0REpC00Y3r5pNNtfBG4hBCcivUDQ9MslIiINF+8Se+FuQvZYtOxxMNA1lObJK1BnQxcAXzL3RfVu1Ez2xm4xd3HR393ARcTnqtaBVzg7mfVux0REalNoUmvp7uTDcZ289Lri/HZb7DN5HGMHTUcyH5qk6R9UJOAi+oNTmbWYWZHAney7hBJpwMGbAnsBBxqZl+oZ1siIlK74tmKN994NNDB868sbNj08klrUHcC01g7Hl+tTieMPHEm8N3Y64cCh0Wz875hZucBxwDX1Lk9EZHUNDqLrR71lrV4tuL1Rnez9WZjee7lRcxb0MeEcSPZd+qWme5/0gA1E7jAzD5FmFl3efxNd/+XhOu5zN1PNbNdCy+Y2XrAJsDjseWeBN6dcJ0iIpkrbvIqZLHlcf6pNMpaarbirmGd7LTtBI7df/usir6OpE18U4H/BUYA2xOa4Qo/U5JuzN1fLvHyqOjfeE/bEkBzNotIbhQ3efWMGEZPdyfTZ+RvUJ00yjptyiR6+1bSu3RFw5r0iiWqQbn7bhmWoTf6d0TstZHA4gy3KSJSleImL8g+i61WaZS1MFtxvJkw6ya9YmUDlJntCfzR3VdEv5fT7+631VoAd38jmsbDgJeil7dh3SY/EZGmKtXklXUWW63SKmuzZyuuVIO6BdgYeC36vZw0noP6D+B7ZvYIocnvJOCiOtcpIpKaaVMmce0dDoTayJK+lfT2rWTfqVs2uWRv1UplraRsgHL3IaV+z8ipwPnAY4R+sZ8Cl2W8TRGRxPLQ5JVUK5W1kqYMFuvudwPrxf7uA46PfkREcqnZTV7VaKWylqPBYkVEJJcUoEREJJcUoEREJJeq6oMys20J6eB3AuOB5929P4uCiYjI4JaoBmVmY8zsVuDvwH8BE4AfATPNbGKG5RMRkUEqaRPf+cBwYCKwNHrtK8CbwIUZlEtERAa5pE18ewF7u/vLZgaAu79gZicAf8qqcCIipbTSqOJSu6Q1qFGsrTnFDa1iHSIidSuM1L2wd/k6I3XPmj2/2UWTlCUNLrcDp5lZYWCnfjPbCDgP+GMmJRMRKaGVRhWX+iQNUCcQZtWdRxhp/L+BF4CxwInZFE1E5K1enb+Ekd3r9k7kdVRxqU/S6TZeBT5gZrsB20afe4Iw2rnSzEWkYVppVHGpT7X9Rw8CNxBGH58BrG9m6pkUkYbJw0R60hiJalBmtjtwBaGZL66DdKbbEBFJpF1G6paBJU0zv4RQezoU6MuuOCIiA2uHkbrzKmkKfyNS/ZMGqE2Avdx9VqpbFxGR3Cik8Pd0d66Twn/IHrZO8Em6XL2SBqibgd0BBSgRaTg9mNsY8RR+YM2/02fMWef7TrpcvZIGqJOAR8zsn4FngdXxN939iNRKJCIS06i79bxpRlB+df4SNhjbvc5rpVL4ky5Xr6RZfJcAw4BFQA8wuuhHRCQTg/HB3GaNljFh3EiW9K1c57VSKfxJl6tX0hrU7sBH3f3+VLcuIjKARt2t50mjmtCKTZsyiWvvcCB8x0v6VtLbt5J9p25Z03L1SlqDehFl74lIEzTqbj1PmjVaRiGFf0xPF/MW9DGmp6tkU2rS5eqVtAb1deBKMzsTeAZYEX/T3R9PtVQiIpFG3a3nSTNHy0iawt+IVP+kNajfA+8FfgX8H2Hiwkdj/4qIZKJRd+t5otEygqQ1qLdnWgrAzHYBfkyYUv514Gx3vzLr7YpI/jXywdw8pLRrtIwg6WCxs7MshJkNAX4HfMPdrzWznYD7zOwhd5+Z5bZFRArqSWlPO7BptIwKAcrMXgO2dfd/mNnrhDH3SnL38XWWY31gPNBhZoXx/VYCy+tcr4hIYrVmz2X9rFYeanXNUKkGdTLhuScID+pmxt3nmdnFwC+AqwiDz57o7k9kuV0RGbxKXfRrTWmvFNgK/9YaXAbrg8pQIUC5+y9if/YDv3T3ZfFlzKwHOKreQkRNfH3AQcBNwAeAX5vZk+5+Z73rFxGJK3fRH9E1lCV9K6vOnisX2J558U1embekruDSrGei8qBSE19X9H4HoVZzT9TUF7cjcBZwYZ3l2A/4oLufHP19j5n9DDgGUIASkVSVu+ivWr2a3r5VQHUp7eXSwpcuW8VG69cXXAbjg8oFldLMvwAsBhZGfz9LaPKL//wJ+GMK5ZgEDC96bSVFz1uJiKSh+EHYNxf18fwrC3ns2fl0dw1h9er+qlLay6WFj+zurPuB28H4oHJBpSa+K81sFiGI3QXsD8QHguonBLA0noO6EzjLzI4mTIy4A6Hp8MgU1i0iso54jefNRX08/eICOoAxPcMYOmQIvX0rq2qGK5cWPn3GnLofuB2MDyoXVEwzd/d7Aczs7cAL7l42k68e7v6Yme0HnAGcC8wFvunuv8tieyIyuMUv+i+93rtmavCJ40fX3MdTLi283uAymJ+JysVzUNE2bgVuzXo7IiLxi/7C3uWM6RnGxPGjGTsq9DSk1ceTVnAZrM9EJR1JQkSkrcQv+lmOezdYg0sako7FJyLSljTuXX6pBiUibaXaURcGcx9P3iUOUGZ2IGF0ia0IWXbHA6+4+3kZlU1EpCq1jrqgZrh8ShSgzOww4DzgfOCU6OUngAvMrNPdz86meCKSlSzHd2vW2HGDedSFdpS0D+obwLHufhawCsJzUsDhhNEeRKSFFGoaC3uXr1PTmDV7/sAfbuK6B9KsmWglG0mb+LYEZpR4/W/AxukVR0QaIcuaRj3rrrfm1cyZaCV9SWtQDny0xOsHAk+mVxwRaYQsaxq1rjuNmpcy8tpL0hrUt4FfmdmU6DNfMrN3AHsDB2RVOGmewTr/TJry/B1mWdOodd1p1OqUkddeko4kcZuZ7UzI4vs7sDshSWIXd/9rhuWTJhjM88+kJe/fYVrju5UKwqXW/dobS1i9up/TrnigbLBOa9RuZeS1j8Rp5u7+GHBYdkWRvFAmVP3y/h2mUdOoFITj6+4aNoQOYMiQjorBWv1HUixpmvlVlJ7yvZ8wLftLwE2aAbc9DOb5Z9LSCt9hvTWNSkH42P23X7PuS2+aydAhQwYM1oN51G4pLWmSxELgUOCdwJvRz1aENPMJwC7ADDP7eBaFlMYazPPPpGUwfIdJkyGSLleo1Y3p6apqLiZpX0mb+LYAznb378RfNLNTgB3cfe9oLqczgdtTLmPu5bkzvBa6k61f1t9hHs65pE1y1TTdqf9I4pLWoD4CXF3i9RuBPaLfbyfUsAaVZj6UmBXdydYvy+8wL+dc0pRupX5LrZLWoOYQAtFTRa9/nDC5IMDmwBsplatl5L0zvFaD8U427VpJVt9hXs65pIkWSv2WWiUNUKcC15rZrsBDhJrXjsAngcPNbFvgOuCGLAqZZ63QGd4saV/wsx47Ls9p4XF5OueSBuHBeMMj9UvUxOfu/wnsCiwDDgE+AywBPuDu1wOjgHOAf82mmPk1GDrDa5F2M1TWzVrxWklHRwc9I4bR093J9BlzUll/mnTOyWBRzXNQ9wP3l3nvQeDBtAqVF0nu2JVQUFrazVBZN2vlqVYyEJ1zMlgkfQ5qJGHU8m2BodHLHcBwQhbfNtkUr3mSNvmofb20tC/49awvyY1GKz0kqnNOBoukNajLgE8D9wB7AjcTnoN6J3BWNkVrrmru2NW+/lZpX/BrXV/SG41Wq5XUes7lIT1dJKmkaeZ7AQe7+6eAWcCp7v4u4CqgLXNFNa9MfdJOLa51fUn7lgZDan2t/XizZs/n0ptmctoVD3DpTTNb+hGKdtduxyppDWoUMDP6/TFgCvAo8CPgzgzK1XRZNPkMprvXtJuhal1fNU2D7V4TrtQqUPi3+NxspezGwa4dj1XSAPU88C7C81BPElLMrwJWA2PTKIiZbQJcCuwG9AE/dfdTKn8qO2k3+bTjyTOQtC/4tayvlfqWslYuWD/z4pu8Mm9JyXMzL89cycDa8VhV0wd1vZkdBvwWuM/M/kEIJqVm2q3F74CHCWP7bQLcY2ZPRGnsDZd2DSCtk2cw1cLSkMe+pWYdw3LBeumyVWy0/rrn5sLeZVz0y7/x5uJljOkZxsTxoxk7ajigpu68qjWRKM/XlKTzQf3IzF4B5rv7w2Z2HHAcMA84sd5CmNn7COP9fdDdVwDPRQ8FL6133fVIswaQRlZb1rWwPJ+otcpbxlsza9LlgvXI7s51+lvfXNTHS6/3smr1asb0dNG3bCVPzXmTrSatx9hRwwdtDTTvamktyHvLTtI080uB89z9GQB3v5rSY/PVakdCn9ZpUS2tD7jE3c9PcRtNlUZTU5ZV+LyfqPXIU99SqWNYqK1stP6ITG8MygXr6TPmrHNuvvyPXjqA0SO7eNuGPTz94gI6gBdfW0Tn0CF110Db8Uaokcp9f7W0FuS9WTBpFt/ngFUZlmMc8CFgBaEmtR9wkpkdlOE2GyqNrLYsMwtbaSSFVlZ8DAu1lYVLljVk4NetNx/Hsftvz2lHvX/NnE3F5+biJStY3d/PphuNYr3R3bxj4li6h3eysHdF3dmNeRnotlVV+v5qyUTNe7Zy0j6onwI/MrMfAM9S1PTm7vXuzTJgobufFv0908yuJASqpvRBpS2NpqYsO/xbaSSFVlZ8DOO1lcKNATT2Drb43Bw9sov1xwxf0+e03uhuhnUOZUxPF8fuv31d28r7HXveDfT9VdtakPckoqQB6nBgA+BTZd4fWub1pJ4ERppZl7svr7JsLaPepqYsO/zzeqK2W3NQ8TFcvGQFHR2w6Uaj1izTjBuD+LlZuEvvXboi9fOsFW+E8nQOpv395TGJKC5pE98BhIy9j5T5qdcfgdeB882sy8zeDXyRQTg6eiVZPkyaxzl72rE5qPgYjh7ZxaQJazPkIN0bg1oe3MzyPGu1gW7zdg6m/f3l/QH1pFl89wCY2SjCEEePA13uviiNQrh7n5lNBX4CvEJIkjjH3W9KY/3tJKsO/7xlu0H7Ngc1qrZST+JLVudZo+/Y66395O0cTOv7y1OtsJKkWXxdwIXA0dFLWwM/NLMRhCGQFtRbEHd/ljCkUkO1yoFqhLyN79aKzUHVyvLGIG8XV6huf+s9r9LITM3bOZjG+dJKGbtJ+3nOAD4AfJi1QxudC/wcuIDQHNdyWulA5VWW3+FA/WLtcnORVW0lbxfXgiT7m8Z5lUaAzmPfbL3nSx5vXMpJ2qgsKk4AABXTSURBVAd1IPDlaE6oflgzB9RRhFl1W5JSq+uX5XdYqV+smX0DrTIgZ6v198SlcV6lkUKdx77ZeuU9tTwuaYAaD8wt8fpCIP9nexmtdKAG0qyLZpbfYaUO3GbdXDQ6MNZzXFv54prGeZVGgM57EkEtWunGJWkT372EIY1OiP7uj/qlTgH+J4uCNUIeq++1aGZTZdbfYbnmjErNV1k2/dUyInit6j2ueUx8SSqN8yqthIK0m2Cb3TSd99TyuKQB6kTgdjPbHegmDHO0FWF0iY9lU7TsZXGgmnHyVdOmnHb5mnWyl7uAdQ0bkmmwrmVE8GYOMNzIYZ7SPLfSOK/yGKCLbzpefG0RZ10zgw3HdrPFpmMbcr3I4/dSTtI081lm9k7gIMK0753AdcC1KYwi0TRpH6hm1WSSdoZnUb5mnezlLmAjuoZm2gFczYjg9W43r0kOpdR6bpULammdV3kahxHWvekoDHPVASxeuryhLR95+17KSZpm/k3gene/KuPyNFyaB6pZ2TFJm0OyKl8zTvZyF7Dr7/RML+pJRwQv3m4ttYtqmrma3WxUy7k1UFBrlYtoNeI3HS//o5fOoUMY1jmEvuUrc51N1yxJkyQ+CzxrZveZ2TFmtn6WhWpVzUq6SNoZ3k5JIVB64NOsO4DLdZpvsenYstutNbEi6XEtXn+h2ejkH9/bsISZWs6twZhFGz8/l/atpHNoBytXrmbE8PDdtfL/xywkClDu/l5gO+C/ga8Ac83sZjP7XPSwrlBfdkw92VpJM41aKXunVo3IXCsVGCttt9YLcdLjGl//gsXLeOn1XujvX6fZKOsgVcu51W43TEnEz5Pu4Z0sW76KFatWrxmLsd3+P9Yr8YCs7u7A6cDp0Vh5BwKXRz9jsileaynV/PPaG0tYvbqf0654oGzTSxp9Q0maQxqR0NDspqZm9YlV2m49zY5Jjmsemo1qObfaJYu2GvHzpKe7k75lK5k4fhRjerrW3NTkMZuuWaoaMTxKLf84ITjtCbyBBnRdo/gi1TVsCB3AkCEdFQNPo/qusr5452Vkjmb1XZTbbtYX4vj6l/atZHjX0MyajdJMamildOc0xc+T4u8zr9l0zZI0SWJvQlD6FLAS+BWwj7vfm2HZWlL85Lv0ppkMHTJkwMDTyGytNC7e5S5SrTSECjSutpf1hTi+/u7h4a68H5j8ttCwkVYwTDupoZXSnbPSjokgaUpag/olcDPweeA2d18JECVLHOzuF2dUvpaWNPC0UlNHpYtUrYG2Gc2CjaztZX0hblSzURY3ILpASyVJA9QEd19c+MPMPgYcAXwaGAYoQJWQNPC0UlNHpYtULYG2Wc2CjX64OesLcSOajVrpuSxpD0kf1F1sZpMJM+seBkwEFgNXMEiCUy0XqaSBp9Y77GbUPCpdpA76mCUOtIWyP/T4qwwd2sHkTcY0dMrztB5ubnZSSClZBcNWqulLe6gYoMxsOGE23SOAqcBq4G5gU+DD7j4z6wLmQa13+dUEnmovKtWUKc2LaKWLVNL9jZd9dX8/Q1bDU3PeZKtJ6zF21PCG3JWn8XAzkHrtL48Br6CVavrSHsoGKDO7BPgc0EWYkv2LwO/d/Q0zWwGsaEwRm6+etves7maTlintJrSBLlJJ9jde9pHdnSxfsZphQzt46fXFjB01vCF35UkvtpVqWmn3yeQlC7IcJTVIo1WqQX0JmAV8H7jV3ec1pkj5k8e296RlSvsimsZFKl72t23Yw9MvLqBz6BCW9K1o2LMgSfejUk0r7fOiFbIgldQgjVQpQO0GHAxcBPzczP4M3AT8phEFy5M8tr0nLVMWwbXei1S87OuN7uYdE2H23EUM6ehgTE8XO9hGTJ8xh+vv9Eybuep9uHn6jDmpnhd5vBESaaayQx25+z3ufjSwMWEsvvmEad5nR5/bz8wGxQgSeZz4LWmZ8ji8UXHZh3UOZZMNR/HNL+zEtCmTuG/mK02ZKbeUSsMNpX1e5PFYiTRTR39/f+KFzWw94J8JNasPAkuBG939yGyKl6hMk4Hnpk+fzsSJEzPbTh47r5OUKd6vEa8BNLtfo1zZL71p5ltqJb1LVzCmp4tj99++6eWrdbmk28zjsRLJ0osvvsi0adMA3u7uz8ffq2qoI3d/k2j8PTPbjPDg7kEplTPXGtn2nvSiV6lM8XV0dw1h9ep+5i3oe0tfS7MCb7my56GZq5pkhTTPCyUhiKyrqgAV5+4vEBIovp9ecdbU0h4BTnX3q9NcdytII5OreB3l7sTzmDWWh/6+ZiYrKAlBZK2k80E10mWE56zaWrnpNdKYIyfpOvI4H08e+vsG4zQQInlUcw0qC2Z2KGHqjkebXZYsZTGeXVzSdeShOa1YHkbVyEMtTkRyFKDM7O3A94APALc3uTiZSns8u2JJ15HXC3GWo2okoRETRPIhF018ZjYUuBY4yd3nNrs8WavUhJRGE1fSdTS6Oa2eWYMrSbupslJquYg0Tl5qUKcQJu39dbML0ghpjGdXSdJ1NDJrLMuEjGqaKtPIkBSRxshLgPos8DYz2y/6ezRwiZnt7O7HNbFcmUhjPLuBJF1H0uXq7ePJMjMuaVNlHrMWq5HHZ/FEspSLJj5338bdx7j7eu6+HiFJ4rh2DE7Qek1IhQt7PaM7ZJkZl7SpMo9Zi0mlcQxEWk1ealCDTis1IaVR+8kyISNpU2UesxaTaoWBZEXSlssA5e7vbXYZZK00LuxZZ8YlCfh5zVpMopWDq0itctHEJ/mWxiCmeWjWzMNDwLXSQLIyGOWyBtVM6oh+q7RqP81u1mzlse70bJYMRgpQMa2e5ZWVVr6wF2t2kKxVOx0DkaQUoGLUEV1eq17Y24mOgQw2ClAxeeyIVpOjiAxWSpKIyVtHtJ59EZHBTAEqJm9ZXq38YKmISL3UxBdTTUd0I5re8tjkKCLSKApQRZJ0RDcq26+VHywVEamXmvhq0Kimt7w1OYqINJICVA0aNSV4HkZfEBFpFjXx1aCRTW969kVEBivVoGqgpjcRkewpQNVATW8iItlTE1+N1PQmIpIt1aBERCSXFKBERCSXFKBERCSX2qEPaijA3Llzm10OERGpUuzaPbT4vXYIUJsAHHzwwc0uh4iI1G4T4Jn4C+0QoB4CPgS8AqxqcllERKQ6QwnB6aHiNzr6+/sbXxwREZEBKElCRERySQFKRERySQFKRERySQFKRERySQFKRERySQFKRERySQFKRERySQFKRERyqR1Gksg1M9seuAx4D/AscIS7v+WJaTPbDPgZsAvwGnCCu98ae/8FYAOg8GT1S+5uGRd/QEn3L7b8FsDDwNvd/c3otQ7gDOBooAu4CjjZ3VdmXPwBpbF/0estffzMbEfgR9FyC4ErgTPcvT+vxy+NfYveb/Vj937C/m1L2L/LgTPzfOwKVIPKkJl1Ab8DfgmsB3wfuNPMxpRY/EbgEcJ/hKOAG6OLHWa2IbApMN7dR0U/efgPUs3+YWb7APdFy8YdDewH7ABsBewEfDujYieW1v61+vEzs5HAH4D/JJyf04DDCOcp5PD4pbVvbXDshgM3Az8HxgIfBo4D9o0Wyd2xi1OAytauwDB3v9DdV7j7jcBjwD/HFzKzrYEpwKnuvtzd7wJ+D3wxWmRH4Cl3721c0RPZlQT7B2BmRwDnAqeXWM+hwIXu/qK7vw6cBhyTWamT25V09q/Vj98k4AF3v9jdV7n7U8Bvgf8XvZ/H47cr6exbSx87d19GqM3/NHppA8LYd/Ojv/N47NZQE1+2tgWeKHrtSeDdJZZ7oeg/wZPAztHvOwBDzOxB4O3AX4Gvunvxuhst6f5BuEv9BeGCUGo9jxet421mNs7d55dYvlHS2r+WPn7u7qy94y7cvX8CKFz08nj80tq3lj52AO6+KPr1JcKgrDcA98bWk7djt4ZqUNkaBSwpem0JMLLK5VYBDxKq4psD/wfcFjVPNFPS/cPdX3X3cqPNF6+n8Hu77F/LH7+CqMnohmi5y8qsJw/HL619a5tjB2wBbE2oFRZq+nk8dmuoBpWtXmBE0WsjgcXVLOfu58TfMLNvEdqRdyT0eTRL0v2rdj2F/xzVridtqexfuxw/M9sYuAlYDXzU3ZeWWU8ejl8q+9Yuxw7A3fuAp8zsXOArwCkl1pOHY7eGalDZehwo7lDdhnWr1IXlNjOzEaWWM7Ovmtn/i703lHBz0ZducauWdP+qXc82wCvxLLgmSWX/2uH4mdm2hPl6niZcwN+osJ48HL9U9q3Vj52ZbWVmT5tZT+zl4UDh2OTx2K2hGlS2/gR0mNnXgIuB/Qkpob+JL+TubmYzge9Hd2gfAD4NvD9aZDLweTPbm3Bi/RB4itAe3kyJ9i+B/wBOMrPphDu606LXmi2t/ZtMCx8/M1sfuBO40d1PKrGePB6/tPZtMi187Agz1C4DzjSzfyFk6p0EnBq9n8djt4ZqUBly9+WEDtf9CVkz3wH2cffXzexgM4tXo/cH3kl4BupK4Ivu/vfovW8CfyG0f79GaEv+ZIU+j4aocv8quQz4L+B+wn/+x1n7H6hpUty/Vj9+nyekWh9rZotjPzdE7+fu+KW4by197Nx9NfApQs3odUJq+jnuXghCuTt2cZpRV0REckk1KBERySUFKBERySUFKBERySUFKBERySUFKBERySUFKBERySUFKKmbmU01s34zu2zgpUt+/nkz+3IK5TjNzGaUeW/XqIyjEq5rspl9ut4yxdbXHz3smbpK+13hM78ys6vr3O4+ZvaLetaRJTO72sx+lXDZKdHDqpIjClCShkMID/l9rmi4pqR2IsxXkydXAR9qdiHyysxGAxeQo4c6SzgRODLJgu4+A3jDzA7NtkhSDQUoqUs0AvQBhAnTuqLfq+Lur7t78cjMzdbR7ALk3NHAX919drMLUo67L6hyTLkfA6eama6LOaGx+KReewNjgFsJY5odQTSWl5mdBryPcCO0C2EE5cMJw6nsRpg8bSpwG3AeYX6b24GN3X1etI4NgVeAqe5+fzT22LGEMdIWE+ZhOtbdqxp92cy2As4nzDA6glAD/La7/z5q+poKTDWzA9x9clRjOJ8QgPuBu4AT3f3larYbbbuHMLnhPsBGwFzgcnc/M3r/asLU3KMIE9C9AXwdWBl9bjxwC3BoNOQNhDmLLiJ8/4uBs9z9x7Ftfh74HmE+oOsJNxPxMlX7vX6ZMLxO4fNXE8Z8G0WYX+ll4BR3vyG2zBeA7wITCfMOneLuf4h9vpMwVtxWwIHu/t9FZbwb+CPhnNodeJEw8+02hJG5RwLXuPuJsXWOcvcDzOywqMz/CXwNGEY4146JzcP2P1H5P0kYEkiaTHcKUq9DgD9Hs3H+hnBR3yL2/scJk6PtQghiEJpdvgrsXTTx258I44XtG3vtAGBOFJw+RxjM8uuEi9hhhEF1q5oB1Mw6CNNgL4rK9V7gUeCqaMK6E4EHgEsJzY8QJrAzYA9C8OoH7jCzWm7yLiAMBLxPtM4fA2eY2Y6xZY4hDPT5buAO4GfAycBngM8S9vuQ2PL/RAg+7yMMBnq2mR0c7e9uhCbUCwgT8C0mXIQL30dV36uZbUcIZHcUvXUYIbDuQBjA9Foz2zX6zB7Rfp4a7dPlwK/M7P2xzx9M+M4/QhgbrpTvEILHuwmjj/8mKuvHCIHnBDP7SJnPvofQbPtRQmDbD/hS4c1o3Lo/Esa4kxxQDUpqFo0EvSfwr9FLvydM8HY44Y4WYCnhbn519BmAu9y9+OKGu682sxuBAwkD5kKoQRTuwl8GDnP3W6K/Z5vZPYRZQasxIlr/zwuzhprZeYQL/wR3n2Nmy4El0eCbW0TvTXT3l6LlPw/8gxCAbym1kQr+TKgxFUbEPtfMTo324+Hotafd/fvRti4n1IxOKXzGwgyv28XW+QZweFQbeNzMphDmLbqOcBH+rbtfEn3261G5C6r9XqcAcwu13JjZwPHRsX4yCk7HAncD3wbOjaYmB3gmCsjfYG2zsLv71WW2WfAnd/9ZtB9XRftxgrs/DTwW1dq3I9Rwiw0DjnL3udGytxPmdYp7nBC4JAcUoKQeBxKain4N4O7zo2aYw8zse9EyzxWCU8wzFdZ5PfBA1LQ3jNAE9+Vo/fdE2VZnEpp1tiPUQK6pptDuvsTMLgUOii7kWxPu+iHM91OscKH2KMAWjIy2X22AuhbYOwpyWxNqcKOKtv107PdC/9yzsdf6CPP6FDwaa6qCML/R4dHv74q2GXbCvd/MHor9Xe33OoEQnIvdX3SsHyTUiojW+T4L08kUDANmxf6udF4UVPu9xC2KglPBQqCnaJl5hCZUyQEFKKlHoYnp2diFewghweBj0d9Liz9U5jUgZFOZ2TOEu9huwoX3MYCoH+FSQobdbcAZrJ26OrGoD+h/o3L8hlDzW0y40y+lE1hBaEYrHv5/frXbJzS3fZQQAK4h1DJmFi2zosTnigN9XPH0D0OA5bG/i5M+lhP9/6/he11dYn0Q+siKy1AoVyfwLULTalx8P8ueF2WWB9Y0zSWxvMRrxfsxlLd+l9IkClBSEzPbHPggoe/ipthbw4B7CE1S1c6sW3ADYQ6bUYQmqoLjCc1Ep0Zl6CD0mVT1DBCwa/S5sdE02JjZgdF7hQtWPBA9QdivHnf/W7R8D6FW8kPCfEGJRMkWnwd2d/e7otc2BsZSX+bgtmY2NDZP0S6s/f4fIfRNxe0QvQ7Vf69zCckdxXYo+ntn1gbeJ4DNo6Y4ou18mxDszq6wX422IWH/JAcUoKRWhxCaUy4qTuWNHt48Gni1xnVfR+jX6iRczAvmAbtZmKK7g9Apvi0hwaEa8whNk/8cNUnuAFwYvVdoHloMvMPMNo1mPP49cI2ZHU9I5Pg+IQg8CWBmY4GuKFmkkj7CzKX7mdlzwNsImXkdlG+aSmIj4Gdmdg4hMBxJSMIAuAi4L+p7ugX4ArA9awNUtd/rw8B4M9u4qMnsn6JmwmsI2Z2fINzEAJwD3GBmTxISET5CqKXFj28ebE9oHpUcUBaf1Opg4JdlnjO5mFDjOLjEewOK7rIfBR5w9zmxt04k1GxmAP9NuKCfxVvv3Ada/18I2WBns3YG0ZMIiQaFTvNLCRfXmdFzMYdG2/0t4QI2llALKuz/RSS4sLn7CuAgQhPf44SL+Z2EDMfiDvtq/JHQ/PUQoYnuK+5+e2x/P0PIXJtJCD43xD5b1fcaZV4+R8hmjLuTUPOaSahB7+vuD0af+Q1wAiFT8HFCRuJxsaSJpouO8wepvk9RMqIZdUVSYGZDCUkCxU1pbcnMTgY+5O6fiv6+muiZo6YWrA5RKvzFgFXRryUZUg1KJB0nsW5fXLu7FNih6Jm3Vncc8AMFp/xQgBJJx4/c/ZxmF6JRohEmvgr8W7PLkgYz24nQbHt1k4siMWriExGRXFINSkREckkBSkREckkBSkREckkBSkREckkBSkREcun/AxcYTcT5rFJ0AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "plot(sweep, 'bo')\n",
    "decorate(xlabel='Arrival late, lambda (per min)',\n",
    "         ylabel='Average time in system',\n",
    "         title='Multiple server, single queue')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Multiple queues\n",
    "\n",
    "To simulate the scenario with two separate queues, we need two state variables to keep track of customers in each queue.\n",
    "\n",
    "Write an update function that takes `x1`, `x2`, `t`, and `system` as parameters and returns `x1` and `x2` as return values.  f you are not sure how to return more than one return value, see `compute_metrics`.\n",
    "\n",
    "When a customer arrives, which queue do they join?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def update_func3(x1, x2, t, system):\n",
    "    \"\"\"Simulate two queues with one server each.\n",
    "    \n",
    "    x1: number of customers in queue 1\n",
    "    x2: number of customers in queue 2\n",
    "    t: time step\n",
    "    system: System object\n",
    "    \"\"\"\n",
    "    # if the first servers is busy, check it it's done\n",
    "    if x1 > 0 and flip(system.mu):\n",
    "        x1 -= 1\n",
    "            \n",
    "    # if the second queue is busy, check if it's done\n",
    "    if x2 > 0 and flip(system.mu):\n",
    "        x2 -= 1\n",
    "            \n",
    "    # check for an arrival\n",
    "    if flip(system.lam):\n",
    "        # join whichever queue is shorter\n",
    "        if x1 < x2:\n",
    "            x1 += 1\n",
    "        else:\n",
    "            x2 += 1\n",
    "            \n",
    "    return x1, x2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Write a version of `run_simulation` that works with this update function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "def run_simulation(system, update_func):\n",
    "    \"\"\"Simulate a queueing system.\n",
    "    \n",
    "    system: System object\n",
    "    update_func: function object\n",
    "    \"\"\"\n",
    "    x1, x2 = 0, 0\n",
    "    results = TimeSeries()\n",
    "    results[0] = x1 + x2\n",
    "    \n",
    "    for t in linrange(0, system.duration):\n",
    "        x1, x2 = update_func(x1, x2, t, system)\n",
    "        results[t+1] = x1 + x2\n",
    "\n",
    "    return results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Test your functions by running a simulation with a single value of `lam`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.8552412645590682, 6.841930116472546)"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "system = make_system(lam, mu)\n",
    "run_simulation(system, update_func3)\n",
    "plot(results)\n",
    "decorate(xlabel='Time (min)', ylabel='Customers')\n",
    "compute_metrics(results, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sweep a range of values for `lam`, plot the results, and print the average wait time across all values of `lam`.\n",
    "\n",
    "How do the results compare to the scenario with two servers and one queue."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average of averages =  6.753981831564981 minutes\n"
     ]
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "sweep = sweep_lam(lam_array, mu, update_func3)\n",
    "W_avg = sweep.mean()\n",
    "print('Average of averages = ', W_avg, 'minutes')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Solution\n",
    "\n",
    "plot(sweep, 'bo')\n",
    "decorate(xlabel='Arrival late, lambda (per min)',\n",
    "         ylabel='Average time in system',\n",
    "         title='Multiple server, multiple queue')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Solution\n",
    "\n",
    "\"\"\"\n",
    "With two queues, the average of averages is slightly higher, most of the time.  But the difference is small.\n",
    "\n",
    "The two configurations are equally good as long as both servers are busy; the only time two lines is worse is if one queue is empty and the other contains more than one customer.  In real life, if we allow customers to change lanes, that disadvantage can be eliminated.\n",
    "\n",
    "From a theoretical point of view, one line is better.  From a practical point of view, the difference is small and can be mitigated.  So the best choice depends on practical considerations.\n",
    "\n",
    "On the other hand, you can do substantially better with an express line for customers with short service times.  But that's a topic for another notebook.\n",
    "\"\"\";"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
